Displaying content between loops of a looping media item

ABSTRACT

A method for displaying content between loops of a looping media item is provided herein. The method includes receiving a request for a primary media item and determining that the requested primary media item is a looping media item. The method further includes steps of identifying, by a processing device, a secondary media item for the primary media item and of providing the primary media item and the secondary media item for presentation between loops of the primary media item.

TECHNICAL FIELD

This disclosure relates to the field of content-sharing platforms and,in particular, to displaying content between loops of a looping mediaitem.

BACKGROUND

On the Internet, content-sharing platforms, like social networks andothers, allow users to connect to and share information with each other.Many social networks include a content-sharing aspect that allows usersto upload, view, and share content, such as video content, imagecontent, audio content, and so on (which may be collectively referred toas “media items” or “content items”). Such media items may includeprofessionally produced audio clips, movie clips, TV clips, and musicvideos, as well as amateur content such as video blogging, shortoriginal videos, pictures, photos, audio recordings, other multimediacontent, etc. Users may use computing devices (such as smartphones,cellular phones, laptop computers, desktop computers, netbooks, andtablet computers) to access the content-sharing platforms to use, play,and/or consume media items (e.g., watch digital videos, and/or listen todigital music).

In some content-sharing platforms, a media item may be displayed in acontinuous loop, such that immediately after the media item is displayedin its entirety to a user of the platform, the media item is displayedto the user again. Such media items may often be of a shorter duration,such as under a minute in play time. This unique form of media item, thelooping media item, may present unique opportunities and challenges.

SUMMARY

The following is a simplified summary of the disclosure in order toprovide a basic understanding of some aspects of the disclosure. Thissummary is not an extensive overview of the disclosure. It is intendedto neither identify key or critical elements of the disclosure, nordelineate any scope of the particular embodiments of the disclosure orany scope of the claims. Its sole purpose is to present some concepts ofthe disclosure in a simplified form as a prelude to the more detaileddescription that is presented later.

In one implementation, a method for displaying content between loops ofa looping media item is disclosed. The method includes receiving arequest for a primary media item and determining that the requestedprimary media item is a looping media item. The method further includessteps of identifying, by a processing device, a secondary media item forthe primary media item and of providing the primary media item and thesecondary media item for presentation between loops of the primary mediaitem.

In one implementation, a system for displaying content in between loopsof a looping media item is provided. The system includes a memory tostore instructions and a processing device communicably coupled to thememory. The processing device executes the instructions to receive asecondary item for insertion into a looping media item with one or moreprimary media items and to receive information identifying the one ormore primary media items. The processing device further associates thesecondary media item with the information identifying the one or moreprimary media items and provides the secondary media item for play withat least one of the primary media items.

In another implementation, another method for displaying content betweenloops of a looping media item is provided. The method includes receivinga request for a primary media item and receiving instructions to loopthe primary media item and to present a secondary media item in betweenloops of the primary media item. The method also includes playing theprimary media item and, when playing the primary media item iscompleted, presenting the secondary media item followed by anotherplaying of the primary media item.

In additional embodiments, computing devices for performing theoperations of the above described embodiments are also disclosed.Additionally, in embodiments of the disclosure, a computer-readablestorage media stores methods for performing the operations of the abovedescribed embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings.

FIG. 1 illustrates an exemplary system architecture, in accordance withan embodiment of the disclosure.

FIGS. 2A, 2B, and 2C illustrate various integrations of a secondarymedia item into a looped media item, according to embodiments of thedisclosure.

FIG. 3 illustrates an exemplary user interface for combining a secondarymedia item with a primary media item in a looping media item, inaccordance with some embodiments of the disclosure.

FIG. 4 is a flow diagram illustrating a method displaying a secondarymedia item with a looping primary media item, according to someembodiments of the disclosure.

FIG. 5 is a flow diagram illustrating a method for displaying content inbetween loops of a looping media item, according to some embodiments ofthe disclosure.

FIGS. 6A and 6B are flow diagrams illustrating methods of identifying asecondary media item to play in connection with a primary media item,according to some embodiments of the disclosure.

FIG. 7 is a flow diagram illustrating another method for displayingcontent in between loops of a looping media item, according to someembodiments of the disclosure.

FIG. 8 is a block diagram illustrating an exemplary system architecture,according to some embodiments.

These drawing may be better understood when observed in connection withthe following Detailed Description.

DETAILED DESCRIPTION

Implementations are described for displaying content between loops of alooping media item. In recent years, the creation and sharing of mediaitems, such as videos, that are presented or displayed in a continuousloop has increasing in popularity. A looping media item refers to amedia item that is intended (e.g., by a media item creator or owner) tobe played repeatedly on a viewer screen without a viewer request forsuch repetition. These looping media items, e.g. a looping video, may becreated by a user of a content-sharing platform and shared with all orwith a limited number of viewers that may also be users of that samecontent-sharing platform. Typically, looping media items may be lessthan a minute, e.g. 15 seconds, 10 second, or less. However, this is notalways the case. Longer media items may be converted to looping mediaitems as well. Of note, the unique format of looping media items maypresent difficulties in the monetization of such content.

Implementations of the present disclosure enable a primary media item,intended for distribution and viewing as a looping media item, to bepresented or displayed in connection with a secondary media item inbetween loops. By presenting the secondary media item, whether text, astill image, another video, or some combination thereof, for display inbetween loops of the primary media item, the primary media item can bemonetized (e.g., presented along with one or more advertisements) toprovide revenue to its creators and/or to the content-sharing platformthat hosts it. Additionally, the inclusion of additional content,including user-generated content, into a looping media item may presentnew opportunities to increase engagement with the original primary mediaitem and in the community of users.

Frequently in this disclosure, examples directed to looping videos areused. This is done for ease of explanation. However, embodiments withprimary content other than looping videos are also well within the scopeof this disclosure, regardless of where specific examples of such areprovided herein.

Thus, in some embodiments the primary media items are videos uploaded aslooping media items by users of a content-sharing platform. The primarymedia items may be converted into looping media items as part of beinguploaded to a content-sharing platform that provides for the display andsharing of looping media content or into a content-sharing platform thataccepts non-looping media items. In the latter, an indication may beprovided at the time of uploading that the primary media item is to bepresented to other users of the content-sharing platform as a loopingmedia item. A secondary media item can then be associated, by anotheruser or by the original user that uploaded the primary media item or bythe content-sharing platform, with one or more primary media items, suchthat secondary media item and the primary media item are played as acombined looping media item (e.g., if the owner or creator of theprimary media item allows for such a combination).

In some embodiments, a sponsored-content provider or content sponsor,such as a company or advertiser, may use an interface to request that asecondary media item be displayed to users of the content-sharingplatform when those users request the primary media items. In makingthat request, the sponsored-content provider may specify a number oftimes the associated primary media item should loop before the secondarymedia item is displayed. In some embodiments, the secondary media itemmay have a longer duration than the primary media item. In suchembodiments, or in others, the sponsored-content provider may requestthat the secondary media item be split into two or more portions. Then,for example, after several loops of the primary media item, a firstportion of the secondary media item is played. After several more loopsof the primary media item, a second portion of the secondary media itemis played, etc. This may be done to prevent the association of thesecondary media item with the primary media item from imposingexcessively on users of the content-sharing platform, degrading theirexperiences on the content-sharing platform. Rather than directlyselecting one or more individual primary media items, asponsored-content provider may use one or more media itemcharacteristics such as content tags that are used to describe one ormore primary media items. For example, a “coffee” tag may be associatedwith a primary media item, either through user-based tagging or throughmachine tagging (e.g., if the content of the primary media item isrelated to coffee). A coffee company may select the tag “coffee” in arequest to have an advertisement displayed with one or more usergenerated videos that are tagged with “coffee.” This may simplify theselection process for the sponsored-content provider and enable thesponsored-content provider to reach a wider audience.

In some embodiments, a secondary media item may be supplied by otherusers of the content-sharing platform, e.g. users that do notfinancially sponsor content or that do not sponsor the content of thesecondary media item. For example, the content-sharing platform mayprovide a user interface to facilitate users in commenting on primarymedia items presented on the platform or may provide for the upload of amedia item that is responsive to the primary media item, e.g. a “reply”video. Thus, the secondary media item may be a comment on the primarymedia item. This comment may be displayed in a frame in the userinterface that is also used to display the primary media item to users.

When a secondary media item is associated with a primary media item, alink to the secondary media item may be stored in a database inassociation with a link to the primary media item. Alternatively, theassociation between the primary media item and the secondary media itemmay occur dynamically when the primary media item is requested forpresentation to a viewer (e.g., if a sponsor of the secondary media itemrequested that the secondary media item be presented with any primarymedia item that has certain characteristics). When the primary mediaitem is requested by a user of the content-sharing platform, the link tothe primary media item may be sent along with a link to the secondarymedia item. The links may be sent together with looping instructions(e.g., in a manifest file). These looping instructions may cause theuser's device to play the primary media item a certain number of timesbefore playing the secondary media item, and to play the primary mediaitem again that certain number of times after playing the secondarymedia item. In some embodiments, the primary media item and/or thesecondary media item may be stored in cache so that the media items oritem may be played in the absence of network access. The instructionsmay thereby provide for looping behavior that plays both the primarymedia item and the second media item as a combined looping media item tothe user in a continuous loop.

Thus, embodiments of the present disclosure may provide for theinclusion of sponsored content in looping media items, therebygenerating a source of revenue for the users of the content-sharingplatform and/or the content-sharing platform itself. Additionally,embodiments of the present disclosure may facilitate engagement amongthe community of users of the content-sharing platform by includingsecondary user-generated content in the display of the primaryuser-generated content.

FIG. 1 illustrates an exemplary system architecture 100, in accordancewith an embodiment of the disclosure, for displaying content in betweenloops of a looping media item. The system architecture 100 includes aplurality of client devices 110A through 110N, a network 120, a datastore 130, and a content-sharing platform 140. In one embodiment,network 120 may include a public network (e.g., the Internet), a privatenetwork (e.g., a local area network (LAN) or wide area network (WAN)), awired network (e.g., Ethernet network), a wireless network (e.g., an802.11 network or a Wi-Fi network), or a cellular network (e.g., a LongTerm Evolution (LTE) network), having routers, hubs, switches, servers,and/or a combination thereof. In one embodiment, the data store 130 mayinclude a memory (e.g., random access memory), a cache, a drive (e.g., ahard drive), a flash drive, a database system, a storage area network(SAN), or another type of component or device capable of storing data.Thus, the data store 130 may also include multiple storage components(e.g., multiple drives or multiple databases) that may also spanmultiple computing devices (e.g., multiple server computers).

The client devices 110A-N may each include computing devices such aspersonal computers (PCs), laptops, mobile phones, smartphones, tabletcomputers, wearable computing devices, etc. Client devices 110A-N may beused to consume and upload content to the content-sharing platform 140.In some embodiments, client device 110A-N may also be referred to as“user devices.” Each client device includes a media viewer 112. In oneembodiment, the media viewers 112 may be applications that allow usersto receive visible content, such as images, videos, web pages,documents, etc., and audio content such as live audio and soundrecordings. For example, the media viewer 112 may be a web browser thatcan access, retrieve, present, and/or navigate content (e.g., web pagessuch as Hyper Text Markup Language (HTML) pages, digital media items,etc.) served by a web server. The media viewer 112 may render, display,and/or present the content (e.g., a web page, a media viewer) to a user.The media viewer 112 may also display an embedded media player (e.g., aFlash® player or an HTML5 player) that is embedded in a web page (e.g.,a web page that may provide information about a product sold by anonline merchant, a content-sharing platform such as a social network).In another example, the media viewer 112 may be a standaloneapplication, such as smartphone application, that allows users to viewdigital media items (e.g., digital videos, digital images, electronicbooks, shared text, etc.) as part of a content-sharing platform.

The media viewers 112 may be provided to the client devices 110A-N bythe content-sharing platform 140, a sponsored-content server 150, and/ora third-party distribution platform. For example, the media viewers 112may be embedded media players that are embedded in web pages provided bythe content-sharing platform 140. In another example, the media viewers112 may be applications that are downloaded from a server accessible tothe client devices 110A-N through the network 120.

In general, functions described in one embodiment as being performed bythe content-sharing platform 140 can also be performed on the clientdevices 110A-N in other embodiments if appropriate. In addition, thefunctionality attributed to a particular component can be performed bydifferent or multiple components operating together. The content-sharingplatform 140 can also be accessed as a service provided to other systemsor devices through appropriate application programming interfaces, andthus is not limited to use in websites.

The system architecture 100 of FIG. 1 also includes a sponsored-contentserver 150. The sponsored-content server 150 may be an advertisementserver by which advertisers can provide advertisements for display inconnection with media items accessible to the users of thecontent-sharing platform 140. While illustrated as separate from thecontent-sharing platform 140, the sponsored-content server 150 may beincluded as a subsystem of the content-sharing platform 140 and both maybe operated by the same entity. Thus, in some embodiments featuresdescribed herein in connection with the sponsored-content server 150 maybe features of the content-sharing platform 140.

In one embodiment, the content-sharing platform 140 may include one ormore computing devices (such as a rackmount server, a router computer, aserver computer, a personal computer, a mainframe computer, a laptopcomputer, a tablet computer, a desktop computer, etc.), data stores(e.g., hard disks, memories, databases), networks, software components,and/or hardware components that may be used to provide a user withaccess to media items and/or provide the media items to the user. Forexample, the content-sharing platform 140 may allow a user to consume,upload, search for, approve of (“like”), dislike, share, and/or commenton media items. The content-sharing platform 140 may also include awebsite (e.g., a webpage) and/or a smartphone application that may beused to provide a user with access to the media items.

The content-sharing platform 140 includes a media item storage 142 thatincludes a plurality of media items 144A through N. Examples of mediaitems 144A-N can include, and are not limited to, digital video, digitalmovies, digital photos, digital music, website content, social mediaupdates, electronic books (ebooks), electronic magazines, digitalnewspapers, digital audio books, electronic journals, web blogs, realsimple syndication (RSS) feeds, electronic comic books, softwareapplications, etc. Of note, the media items 144A-N include one or morelooping media items, e.g. media items to be played in a continuous loopsuch that once a media item is played to its end, the media item isautomatically played again from the beginning.

A media item may be consumed (e.g., viewed and/or heard) via theInternet and/or via a mobile device application. As used herein,“media,” media item,” “online media item,” “digital media,” “digitalmedia item,” “content,” and “content item” can include an electronicfile that can be executed or loaded using software, firmware or hardwareconfigured to present the digital media item to an entity.

In some embodiments, the content-sharing platform 140 may store themedia items 144A-N using the data store 130. The media items 144A-N maybe retrieved from data store 130 prior to delivery to one or more ofclients 110A-N over network 120. In some embodiments, when a userrequests one of media items 144A-N using the client device 110A, thecontent-sharing platform 140 sends a file, such as a manifest file, thatincludes a link to the media item where it is hosted, e.g. the datastore 130. The client device 110A reads the file received from thecontent-sharing platform 140 and then requests data comprising the mediaitem from the data store 130 using the link provided in the file. Themedia item may be streamed or downloaded to the client device 110A.Thereafter, the media item may be presented to a user of the client 110Athrough the media viewer 112 operating thereon. In some embodiments, themedia item may be stored in a local cache on the client 110A, such thatit may be displayed repeatedly without being streamed or downloadedrepeatedly.

A media item management subsystem 146 may also operate as part of thecontent-sharing platform 140. The media item management subsystem 146may maintain information regarding a plurality of users of thecontent-sharing platform 140. The subsystem 146 may also provide for theuploading of media items to the content-sharing platform 140. As part ofthe upload process, the media item management subsystem 146 may receiveuser input describing the media items being uploaded (e.g., theircharacteristics). For example, the user may be presented with aplurality of existing tags or a field for the entry of a new tag to useto describe an uploaded media item in brief terms or a single term. Insuch an example, a user uploading a video depicting a snowboarding trickmay tag the video with a “snowboarding” tag or with other tags. Thesetags may facilitate the discovery of the uploaded media item by otherusers of the content-sharing platform 140, who may be able to search bytag or may have other content associated with a tag displayed as asuggestion upon viewing a media item that was tagged with the particulartag. In some embodiments, the tagging may be performed by artificialintelligence provided in the media item management subsystem 146. Thesystem 146 may be configured to scan uploaded media items to identifypeople, objects, activities, etc., depicted in the content and tag themedia items accordingly for discovery, categorization, and to providesuggested content.

The content-sharing platform 140 further includes a media providingsubsystem 148 and a sponsored-content incorporation subsystem 149. Thesesubsystems 148 and 149 may be included as components of the media itemmanagement subsystem 146 in some embodiments. The media providingsubsystem 148 may facilitate the downloading or streaming of media items144A-N by providing the content to users of client devices 110A-N or byproviding links or files containing links to the media items 144A-N. Insuch embodiments, the media providing subsystem 148 may return amanifest file to a client device 110A in response to a request for themedia item 144A. The manifest file may include one or more links to themedia item 144A or versions of the media item 144A, such as differentbit-rate versions. The file sent by the media providing subsystem 148may include instructions for the rendering and playing of the media item144A in the media view 112 on the client device 110A. For example, wherethe media item 144A is a looping media item, the file may includeinstructions to the client device 110A to cause the media item to beplayed in a loop. The media item 144A item may be stored in a cache ofthe client device 110A, such that it may be played on the device againwithout further network access. In this way a continuous stream of datamay not be required in order to present the media item 144A as a loopingmedia item to the user of the client device 110A.

The sponsored-content incorporation subsystem 149 may facilitatecooperation between the content-sharing platform 140 and thesponsored-content server 150. As described above, the sponsored-contentserver 150 may be an advertisement server. The sponsored content server150 includes a sponsored-content storage 152 that has a plurality ofsponsored media items 154A-N. These sponsored media items 154A-N mayinclude text-based advertisements, (e.g., a slogan or trademark), astill image (e.g. a logo or print-style advertisement), and/or videoadvertisements. The media items 154A may also include sound such asdialog, music, or other sound effects presented along with visualcontent. Users of the sponsored-content server 150 may upload sponsoredmedia items 154A-N for inclusion in a looping media item with one ormore of the media items 144A-N of the content-sharing platform 140.

The sponsored-content server 150 may include a sponsored-contentconfiguration subsystem 156. The configuration subsystem 156 may providea user interface, such as a graphical user interface, to facilitate theselection of sponsored media items and media items 144A-N forcombination in looping media items. By including a sponsored media item154A with media items 144A, an advertisement may be presented to a userof the client 110A in the media viewer 112 in connection with thepresentation of the media item 144A. Some examples of such looping mediaitems are illustrated in FIGS. 2A, 2B, and 2C.

Referring to FIG. 2A, shown therein is the media item 144A and thesponsored media item 154A. In this example, the media item 144A is avideo item that includes a plurality of video frames and the sponsoredmedia item 154A is a still image that includes a logo of the sponsor ofthe media item 154A. These two media items 144A and 154A are combined ina combined looping media item 200. When the looping media item 200 isplayed by the media viewer 112 of client device 110A, the media item144A is played until its end, at which point the sponsored media item154A is played. Playing the sponsored media item 154A may be displayingit for a predetermined amount of time; for example, 5 seconds. After thesponsored media item 154A is thus played, the media item 144A is againplayed from its beginning to end. Again, the sponsored media item 154Ais played, etc. In this way the looping media item 200 causes both themedia item 144A and the sponsored media item 154A to be played to a userof the content-sharing platform 140 in a continuous loop.

FIG. 2B illustrates the media item 144A included in a looping media item210 with a sponsored media item 154B. As shown in FIG. 2B, the sponsoredmedia item 154B is a video including a plurality of frames. When thelooping media item 210 is displayed, first the media item 144A is playedin its entirety, then the sponsored media item 154B is played in itsentirety, then the media item 144A is played again, etc., in acontinuous loop.

FIG. 2C illustrates a looping media item 220 that includes the mediaitem 144A and the sponsored media item 154A. As shown in FIG. 2C,playing the looping media item 220 includes playing the media item 144A,playing the media item 144A again, and then playing the sponsored mediaitem 154A for a predetermined amount of time in embodiments in which thesponsored media item 154A is text or a still image.

While illustrated as a single loop, the looping media item 220 may beunderstood as having an inner loop that specifies a loop count for themedia item 144A (shown as a loop count of two) and an outer loop thatincorporates the sponsored media item 154A into the media item 220. Inembodiments of the looping media item 220, the media item 144A may beplayed once or many times. For example, the looping media item 220 mayplay the media item 144A five, ten, twenty, or more times before playingthe sponsored media item 154A. Thus, loop counts of five, ten, twenty,or more may be used in the playing of the media item 144A, rather thanthe illustrated loop count of two. Many other combinations andvariations of the looping media items 200, 210, and 220 are within thescope of this disclosure. In some embodiments, more than one sponsoredmedia item may be combined with the media item 144A in a single loopingmedia item. In some embodiments, there may be more than one loop count.For example, a media item 144A may loop a number of times equal to afirst loop count (e.g, 0, 1, 5, 10, etc.), after which the sponsoredmedia item 154A may play. Then a different loop count may be used toplay the media item 144A. In some embodiments, the sponsored media item154A may be played once or another limited number of times, after whichonly the media item 144A loops alone.

Returning to FIG. 1, a sponsor of the sponsored media item 154A may usethe sponsored-content configuration subsystem 156 to identify one ormore of the media items 144A-N and determine using a user interface, howthe sponsored media item 154A is to be presented in connection with theidentified media item or items. Associated data may then be communicatedfrom the sponsored-content server 150 to the content-sharing platform140 and the sponsored-content incorporation subsystem 149 operatingthereon. This information may be used by the media providing subsystem148 when it communicates with client devices 110A-N in providing themedia items 144A-N. The information may be used to include the sponsoredmedia item 154A in the presentation of one or more of the media items144A-N. This may be done by including a link to the sponsored media item154A and a link to the media item 144A in a file sent to the clientdevices 110A-N in response to receiving a request for the media item144A. The file may further include instructions to the media viewer 112to control how the combined looping media item is to be played. Forexample, the instructions may include a loop count such that the mediaitem 144A is played a number of times equal to the loop count before thesponsored media item 154A is played, as seen in FIG. 2C. The links andinstructions may be included as data or metadata in a manifest file sentto the client devices 110A in response to a request for the media item144A. In some embodiments, the sponsored media item 154A may be storedin a cache of the client device 110A for offline playing when the clientdevice 110A is offline. The cache may store a plurality of sponsoredmedia items for such offline playing.

As described herein, a user interface may be presented to a contentsponsor to facilitate the combination of a sponsored media item or itemswith a media item or items into one or more looping media items. Anexemplary user interface 300 is illustrated in FIG. 3. FIG. 3illustrates a graphical user interface, but other interfaces may beemployed in some embodiments. The user interface 300 permits contentproviders to upload sponsored media items which are then displayed in asponsored media item list 310. The sponsored media item list 310 mayinclude a plurality of sponsored media items previously uploaded by thecontent sponsor. As illustrated, the sponsored media item list 310includes sponsored media items 312A, 312B, and 312N. Each of thesponsored media items 312A-N may include information to facilitate thecontent sponsor in selecting a sponsored media item for inclusion with amedia item or items from the content-sharing platform.

Thus, the user interface 300 includes a platform media item list 320that provides information on platform media items 322A-N. The sponsoredmedia items 312A-N and the platform media items 322A-N are illustratedas including a plurality of informational fields. As illustrated, thefields contain a thumbnail, a title, and a description of the mediaitem. Some embodiments may provide for more information or lessinformation, but the provided information may permit the content sponsorto select an appropriate platform media item to combine with a sponsoredmedia item in a looping media item. In some embodiments, the platformmedia items 322A-N may be played by the content sponsor by clicking orotherwise selecting a thumbnail associated with the media item. In thismay a content sponsor may preview a platform media item prior toselecting it.

The user interface also includes a tag list 330 with a plurality of tags332A, 332B, and 332N. As described elsewhere herein, a tag or tags maybe selected or entered by users of the content-sharing platform 140 whenthey upload media items to the platform. The tags may also beautomatically generated by the content-sharing platform 140 uponuploading to facilitate search and discovery. The content sponsor mayalso use the tags 332A-N in the tag list 330 to select media items fromthe content-sharing platform 140. In some embodiments, the tag list 330may be used as a way to filter the platform media items 332A-N in theplatform media item list 320. For example, when tag 332B is selected bythe content sponsor, an outdoor clothing company, the platform mediaitem list 320 is populated with media items 322A-N that are tagged with“snowboarding.” The content sponsor may then individually select one ormore of the platform media items 322A-N, each having some relation tosnowboarding. Alternatively, the content sponsor may simply select thetag 322B without further specifying individual platform media items.This may permit the inclusion of a sponsored media item 312A into alooping media item including any of the tagged media items.

When at least one sponsored media item is selected from the sponsoredmedia item list 310 and at least one platform media item is selectedfrom the platform media item list 320, the content sponsor may useconfiguration options 340 to configure how the two media items are to bedisplayed in a combined looping media item to users of thecontent-sharing platform 140. Some control options are expresslyincluded in the configuration options 340, but other may be used inother embodiments. As illustrated, the configuration options 340 includea looping control option 342. The looping control options 342 may permitthe selection of an automatic setting or of manual settings. When themanual settings are selected, the content sponsor may select or enter aloop count for the selected platform media item or items. For example,the content sponsor may use the looping control options 342 to directthat the platform media item play five times before playing thesponsored media item. In such an example, the loop count would be setequal to five. The content sponsor may also direct that the sponsoredmedia item be played in a loop. For example, the sponsored media itemmay be a video to be looped four times. Thus, the overall looping mediaitem would play the platform media item five times, then play thesponsored media item four times, then play the platform media item fivetimes again, etc.

The configuration options 340 may also include a segmentation controloptions 344. The segmentation control options may be used when thesponsored media item has a duration that is significantly greater than aduration of the platform media item. For example, the platform mediaitem may be a 6-second video, while the sponsored media item is a10-second video. The segmentation control options 344 may permit thecontent sponsor to break up or segment the sponsored media item suchthat no segment is larger than the platform media item. After theplatform media item plays for a loop count, a first portion or segmentof the sponsored media item is played. The platform media item playsagain for the loop count, then a second portion of the sponsored mediaitem is played. The segmentation control options 344 may permit thecontent sponsor to select a number of segments and/or the length ofsegments for the sponsored media item. The segmentation control optionsmay also permit the content sponsor to manually select segmentationpoints using a timeline representing the duration of the sponsoredcontent item.

These and other configuration options may be provided to contentsponsors. The selections made by the content sponsors may be provided tothe content-sharing platform 140 through the sponsored-contentincorporation subsystem 149. These configuration options may be providedto the content sharing platform 140 when they are specified by contentsponsors. Alternatively, the configuration options may be provided tothe content-sharing platform 140 when a certain primary media item isrequested by a client device 110A. In one example, responsive to such arequest, the content-sharing platform 140 can request one or moresponsored media items that match characteristics (e.g., tags) of therequested primary media item. When there are multiple matching sponsoredmedia items, they can be auctioned to determine what sponsored mediaitem should be combined with the requested primary media item. Thisdetermination may depend on, for example, other sponsors' bids (e.g.,the maximum amount a sponsor will pay per user click on a sponsoredmedia item) and/or the performance scores of the sponsored media items.The performance score of a sponsored media item such as an ad may becalculated based on, for example, historical click-through rates,relevance of an advertiser's ad text and keywords, an advertiser'saccount history, etc. Alternatively, the sponsored media item may beselected on a reservation basis (e.g., based on predefined conditions)without taking into account other sponsors' bids and/or the performancescores of the sponsored media items.

The content-sharing platform 140 may include configuration optionspertaining to the sponsored media item as data or metadata in a filesent to the client devices 110A when they request a respective primarymedia item. For example, a manifest file may be sent by the mediaproviding subsystem 148 in response to a request from the client device110A to play the media item 144A in the media view 112. The mediaproviding subsystem 148 may receive information from thesponsored-content incorporation subsystem 149 that causes the media item144A to be associated with a sponsored media item 154A. The informationmay include a link or uniform resource identifier (URI) to the sponsoredmedia item 154A and further specify configuration options, e.g. loopcounts and/or segmentation information to be used by the media viewer112 in playing both the media item 144A and the sponsored media item154A in a looping media item. In some embodiments, the media providingsubsystem 148 may send a uniform resource locator (URL) to the clientdevice 110A by which the client device 110A and the media viewer 112 mayaccess the manifest file.

In some embodiments, the system architecture 100 may permit the users ofthe content-sharing platform 140 with additional options for interactingwith other users and sharing content in new ways. This may be done byincorporating additional user-generated content into a looping mediaitem produced from a first user-generated media item. Referring again toFIGS. 2A-C, the media item 144A therein may be a video uploaded by afirst user. The sponsored content 154A may be another user-generatedmedia item, rather than an advertisement. For example the media item144A may be a video uploaded by a first user showing a snowboardingtrick. The media item 154A may be a text-based comment from another userof the content-sharing platform. In some content-sharing platforms,user-comments on a media item may be rated or approved of by the otherusers of the platform. A top comment or a number of top comments may bedisplayed as the media item 154A in a looping media item, such that themedia item 154A may point to a first comment at a first time and to asecond comment at a second time after the first, when the second commentbecomes the top comment. A top comment or a most recent comment may beshown in a video frame used by the media viewer 112 for the playing ofthe media item 144A.

Thus, rather than simply showing the media item 144A, a looping mediaitem may play the media item 144A and a comment. As described above, thecontent-sharing platform 140 may configure the looping media item topresent the media item 144A a number of times equal to a loop countbefore showing the comment (media item 154A), after which the media item144A is played again. In some embodiments, a user may upload a video asthe media item 154B of FIG. 2B that may be played with the media item144A in a looping media item. The video may be responsive to the contentincluded in the media item 144A. In some embodiments, this combinedlooping media item may become a new media item stored in the media itemstorage 142.

Thus, the system architecture 100 provides a system whereby a sponsoredmedia item may be included in the presentation of a user-generated mediaitem in a looping media item. This may provide a source of revenue forboth the content-sharing platform and for the users who generate mediaitems to share on the platform. It may permit content sponsors to reacha new audience in this new medium of looping media items. Additionally,the system architecture 100 may also permit users of the content-sharingplatform to interact with and respond to user-generated content inadditional engaging ways.

In some embodiments, when a user of the content-sharing platform 140uploads a media item into the media item storage 142, the user may bepresented with an option to permit a secondary media item to beassociated with their uploaded media item as described herein or toprevent such associations. The options may be presented in advance insettings associated with the user's account. In some relatedembodiments, the user may be able to specify that only specific types ofsecondary media items may be associated with their uploaded media item.For example, a user may upload a video and indicate, through a userinterface, that secondary media items such as comments and responsivemedia items by viewers of the video may be permitted, but thatadvertisements are not. As another example, a user may upload a videoand specify that secondary media items that are comments are not to beassociated with the uploaded video while advertisements may be. Thecontent-sharing platform 140 may provide default settings with regard tothe types of secondary media items that permit all types of secondarymedia items to be associated with uploaded media items, while providingfor the opting out of any or all types of secondary media items asdescribed herein.

In situations in which the systems discussed here collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether thecontent-sharing platform 140 collects user information (e.g.,information about a user's social network, social actions or activities,profession, a user's preferences, or a user's current location), or tocontrol whether and/or how to receive content from the content serverthat may be more relevant to the user. In addition, certain data may betreated in one or more ways before it is stored or used, so thatpersonally identifiable information is removed. For example, a user'sidentity may be treated so that no personally identifiable informationcan be determined for the user, or a user's geographic location may begeneralized where location information is obtained (such as to a city,ZIP code, or state level), so that a particular location of a usercannot be determined. Thus, the user may have control over howinformation is collected about the user and used by the content-sharingplatform 140.

FIG. 4A is a flow diagram illustrating a method 400 for displayingadditional content between the loops of a looping media item. The method400 may be performed by processing logic that comprises hardware (e.g.,circuitry, dedicated logic, programmable logic, microcode, etc.),software (e.g., instructions run on a processing device to performhardware simulation), or a combination thereof.

For simplicity of explanation, the method 400 and other methods of thisdisclosure are depicted and described as a series of acts. However, actsin accordance with this disclosure can occur in various orders and/orconcurrently, and with other acts not presented and described herein.Furthermore, not all illustrated acts may be required to implement themethods in accordance with the disclosed subject matter. In addition,those skilled in the art will understand and appreciate that the methodscould alternatively be represented as a series of interrelated statesvia a state diagram or events. Additionally, it should be appreciatedthat the methods disclosed in this specification are capable of beingstored on an article of manufacture to facilitate transporting andtransferring such methods to computing devices. The term “article ofmanufacture,” as used herein, is intended to encompass a computerprogram accessible from any non-transitory, tangible computer-readabledevice or storage media. In one embodiment, method 400 may be performedby the content-sharing platform 140 and subsystems thereof as shown inFIG. 1.

Embodiments of the method 400 may begin at block 402 when a request fora primary media item is received by processing logic. The request may bea request for the media items 144A in the media item storage 142. Themedia item 144A may include text, a still image or images, and/or avideo. The media item storage 142 is provided by the content-sharingplatform 140. A user may access the content-sharing platform 140 with aclient device 110A. At block 404, processing logic determines that therequested primary media is a looping media item. This may be done bychecking a database for properties of the media item 144A. Additionally,the content-sharing platform 140 may be a platform for sharing loopingmedia items or may sort and store looping media items separately fromnon-looping media items. Thus, information regarding the platform 140itself may be used to determine that the media item 144A is a loopingmedia item.

At block 406, the processing logic identifies a secondary media item forthe primary media item. For example, the sponsored-content incorporationsubsystem 149 may receive, from the sponsored-content server,information that indicates that a sponsored media item 154A should bedisplayed in a looping media item with the media item 144A. A contentsponsor may configure the looping media item using a user interface,like the user interface 300 of FIG. 3. At block 408, the processinglogic provides the primary media item and the secondary media item. Thesecondary media item is provided for presentation between loops of theprimary media item. This may be done by creating a file and sending thefile or a link to the file to the client device 110A. The file includesan identifier of the media item 144A and the sponsored media item 154Aalong with instructions for how the media items 144A and 154A are to beplayed by the media viewer 112. The instructions may include a loopcount such that the media item 144A is played a number of times equal tothe loop count before the sponsored media item 154A is played. After thesponsored media item 154A is played, the instructions direct the mediaitem 144A to play the media item 144A the number of times again, etc.,in a loop displayed to the user of the client device 110A. In someembodiments, the instructions may include a loop count for the secondarymedia item, or may direct the secondary media item to be played insegments. After a media item has been played the number of times equalto its loop count, the loop count is reset in preparation for anotherloop of the combined looping media item.

When the secondary media item is to be played in segments, the fileincluding instructions sent to the client device 110A from thecontent-sharing platform 140 may include multiple links to the secondarymedia item, one link to each portion. The links may be to separatefiles, each including the portion of the secondary media item.Alternatively, the file may include a reference to several points withina single media item file.

In some embodiments, the client device 110A is a mobile device having anapplication (mobile app) running thereon. As the user of the clientdevice 110A scrolls through a feed in the application, a frame for amedia item may appear (e.g., in an embedded media player). The mediaitem may play automatically once its frame (e.g., a thumbnail image usedto demarcate a portion of the feed in which the media item may beplayed) is fully or partially (but above a threshold) displayed in ascreen of the client device 110A. Thus, the client device 110A mayrequest the media item when its frame is visible to the user in the feedof the application. The requested media item is played in a loopingmedia item that includes the sponsored media item.

In some embodiments, the sponsored media item is another user-generatedmedia item. In such embodiments, the secondary media item may includeuser-generated text as a comment or a video or image that provides avisual comment on, or responsive to, the primary media item.

Referring now to FIG. 5, a flow diagram is shown therein thatillustrates a method 500 for displaying content between loops of alooping media item. The method 500 may be performed by processing logicthat comprises hardware (e.g., circuitry, dedicated logic, programmablelogic, microcode, etc.), software (e.g., instructions run on aprocessing device to perform hardware simulation), or a combinationthereof. In one embodiment, method 500 may be performed by thesponsored-content server 150 as shown in FIG. 1.

Embodiments of the method 500 may begin at block 502 in which processinglogic receives a secondary item for insertion into a looping media itemwith one or primary media items. The secondary media item may beuploaded as a sponsored media item using an interface like the userinterface 300 of FIG. 3. The secondary media item may be shown to a userof the user interface 300 in a sponsored media item list 310, where itmay be selected by the user. At block 504, the processing logic receivesinformation identifying the one or more primary media items. Thesponsored-content server 150 may receive information from thecontent-sharing platform 140 that describes the media items 144A-N andthat may provide access to the media items 144A-N from within the userinterface 300. For example, the media items 144A-N may be provided inthe platform media item list 320 in the user interface 300. Theinformation may include thumbnails, descriptions, titles, tags, andlinks associated with the platform media items 322A-N. The contentsponsor may use the information to select one or more of the media items322A-N with which to associate one of the sponsored media items 312A-Nthat belongs to the content sponsor.

At block 506, the processing logic associates the secondary media itemwith the information identifying the one or more primary media items.This may be done by associating a link to the secondary media item witha link to each of the one or more primary media items or by associatedthe secondary media item with one or more tags that identify the one ormore primary media items. For example, the user of the user interface300 may select one or more of the platform media items 322A-Nindividually or by selecting one or more of the tags 332A-N in the taglist 330. One or more files may be produced by the sponsored-contentserver 150, or by the content-sharing platform 140, using informationfrom the sponsored-content server 150, that contain a link to or anidentifier of the sponsored media item 312A and links or identifiers ofthe associated one or more of the platform media items 322A-N.

At block 508, the processing logic provides the secondary media item forplay with at least one of the primary media items. When a client device110A requests the primary media item, a link to the primary media itemmay be provided to the client device 110A along with a link to thesecondary media item. After the primary media item is played, thesecondary media item may be played by requesting the secondary mediaitem from the sponsored-content server 150 or from data store 130. Forexample, a manifest file may be received from the content-sharingplatform 140 that includes a link to the sponsored media item 154A.After the media item 144A is played by the client device 110A in themedia viewer 112, the media viewer 112 requests the sponsored media item154A from the sponsored-content server 150, from which the media item154A may be streamed. The media item 154A may be saved in a cache orother memory of the client device 110A until it is to be played againaccording to instructions received in response to the request for themedia item 144A.

FIGS. 6A and 6B are flow diagrams illustrating methods 600 and 610,respectively, for providing a secondary media item for a primary mediaitem. The methods 600 and 610 may be performed by processing logic thatcomprises hardware (e.g., circuitry, dedicated logic, programmablelogic, microcode, etc.), software (e.g., instructions run on aprocessing device to perform hardware simulation), or a combinationthereof. In one embodiment, methods 600 and 610 may be performed by thesponsored-content server 150 as shown in FIG. 1.

The method 600 may begin in block 602 in which processing logic providesa user interface for selection of at least one primary media item from aplurality of media items. For example, the user interface 300 of FIG. 3may be provided by the processing logic. As seen in FIG. 3, the userinterface includes a platform media item list 322 that includes aplurality of platform media item 322A-N. At block 604, a thumbnail ofeach of the plurality of media items is displayed by the processinglogic. As seen in FIG. 3, the thumbnails may provide a content sponsorwith the ability to see the platform media items to which the contentsponsor may want to associate one or more sponsored media items.

At block 606, the processing logic receives a user selection of at leastone primary media item. For example, the content sponsor may view thethumbnail for the platform media item 322A and select it as part of arequest to form a looping media item that includes both the platformmedia item 322A and the sponsored media item 312A. At block 608, a linkto the primary media item is stored by the processing logic with a linkto the secondary media item. This information may be provided to thecontent sharing platform 140 in advance or in real-time when one ofclient devices 110A-N issues a request for the platform media item 322A.The information may be stored in other lists and databases that preservethe association between the platform media item 322A and the sponsoredmedia item 312A.

FIG. 6B is a flow diagram of the method 610 and may share some featureswith the method 600 of FIG. 6A. Embodiments of the method 610 may beginat block 612 in which processing logic provides a user interface forselection of at least one primary media item of a plurality of mediaitems. This may be similar to the block 602 of method 600 as describedherein. At block 614, the processing logic displays plurality of tagsfor a plurality of primary media items for selection by a contentprovider or by a user of the content-sharing platform 140. The tags maybe displayed in a tag list like the tag list 330 of FIG. 3.

At block 616, the processing logic receives a user selection of at leastone tag of the plurality of tags. For example, the user interface 300may permit a content provider to select the tag 322A, a “blue sky” tagthat is associated with platform media items that depict a blue sky. Thetags may be entered manually by users when uploading media items to thecontent-sharing platform 140 or by a computer-tagging subsystem of thecontent-sharing platform 140. At block 618, the processing logic storesa link to the secondary media item with a link or links to primary mediaitems corresponding to the tag. For example, when platform media items322A and 332B have been tagged with the “blue sky” tag, the contentprovider's selection of the tag 332A may identify both the platformmedia items 322A and 322B. Links to these two items may be storedtogether with a link the sponsored media item 312A by thesponsored-content server 150, or information indicating the associationmay be sent to the content-sharing platform 140.

Referring now to FIG. 7, shown there is a flow diagram of a method 700for viewing a secondary media item in a loop with a primary media item.The method 700 may be performed by processing logic that compriseshardware (e.g., circuitry, dedicated logic, programmable logic,microcode, etc.), software (e.g., instructions run on a processingdevice to perform hardware simulation), or a combination thereof. In oneembodiment, method 700 may be performed by the client device 110A havingthe media viewer 112 as shown in FIG. 1.

Embodiments of the method 700 may begin at block 702 in which a requestis received for a primary media item. The request may be received by auser's interactions with the media viewer 112. For example, the user mayclick a link being displayed in the media viewer 112 or the user mayscroll through a feed, such as a feed from a content-sharing platform.In some embodiments, when a user scrolls through the feed and therebyexposes a frame in which a media item is to be played, as directed bythe content-sharing platform, the exposure may trigger a request for theprimary media item that is received by the client device 110A. Theclient device 110A may send the request to the content-sharing platform140.

At block 704, the processing logic receives instructions to loop theprimary media item and to present a secondary media item in betweenloops of the primary media item. For example, the client device 110A mayreceive a manifest file from the content-sharing platform that includesa link to the primary media item and a link to the secondary media item.These links may be web URLs. The manifest file may include furtherinstructions that specify how the media viewer 112 should process thefiles linked in the file in order to loop them. For example, theinstructions may include a direction to play the primary media item tentimes before playing the secondary media item once, and to then againplay the primary media item ten times, etc. The instructions mayindicate a play time for the secondary media item in embodiments inwhich the secondary media item includes text or still images. Furtherinstructions may be provided in the manifest file as described herein.Alternatively, the instructions may be accessed by following a link tothe instruction provided in the manifest file.

At block 706, the processing logic plays the primary media item. Thismay be performed when the client device 110A renders data accessed overthe network 120 to a display associated with the client device 110A. Theprimary media item may play in its entirety and may play multiple timesaccording to the received instructions. At block 708, when playing theprimary media item is completed, the processing logic presents thesecondary media item followed by another playing of the primary mediaitem. Thus, the processing logic plays the primary media item and thesecondary media item together as a combined looping media item. In someembodiments, the secondary media item may be stored in an offlinesecondary media item cache present on the client device 110A tofacilitate the playing of the secondary media item or items even whenthe client device 110A becomes disconnected from network-access. Thecombined looping media item may be like the looping media items 200,210, or 220 of FIGS. 2A, 2B, and 2C, respectively. Other configurationsdescribed herein may also be provided to display the primary media itemand the secondary media item in connection as a looping media item.

FIG. 8 illustrates a diagrammatic representation of a machine in theexemplary form of a computer system 800 within which a set ofinstructions or sets of instructions, for causing the machine to performany one or more of the methodologies discussed herein, may be executed.In alternative embodiments, the machine may be connected (e.g.,networked) to other machines in a LAN, an intranet, an extranet, or theInternet. The machine may operate in the capacity of a server or aclient machine in client-server network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine may be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a smartphone, a webappliance, a server, a network router, switch or bridge, or any machinecapable of executing a set of instructions (sequential or otherwise)that specify actions to be taken by that machine. Further, while only asingle machine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein.

The exemplary computer system 800 includes a processing device(processor) 802, a main memory 804 (e.g., read-only memory (ROM), flashmemory, dynamic random access memory (DRAM) such as synchronous DRAM(SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 806 (e.g., flashmemory, static random access memory (SRAM), etc.), and a data storagedevice 818, which communicate with each other via a bus 808.

Processor 802 represents one or more general-purpose processing devicessuch as a microprocessor, central processing unit, or the like, havingone or more cores. More particularly, the processor 802 may be a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, or a processor implementing other instruction sets orprocessors implementing a combination of instruction sets. The processor802 may also be one or more special-purpose processing devices such asan application specific integrated circuit (ASIC), a field programmablegate array (FPGA), a digital signal processor (DSP), network processor,or the like. The processor 802 is configured to execute instructions 826for performing the operations and steps discussed herein. For example,the processing 802 may execute instructions 826 to perform methods 400,500, 510, 600, and/or 700 as shown herein in FIGS. 4, 5A, 5B, 6, and 7.

The computer system 800 may further include a network interface device822. The computer system 800 also may include a video display unit 810(e.g., a liquid crystal display (LCD), a cathode ray tube (CRT), or atouch screen), an alphanumeric input device 812 (e.g., a physicalkeyboard or a virtual keyboard), a cursor control device 814 (e.g., amouse), and a signal generation device 820 (e.g., a speaker).

The data storage device 818 may include a non-transitorycomputer-readable storage medium 824 on which is stored one or more setsof instructions 826 (e.g., software) embodying any one or more of themethodologies or functions described herein. The instructions 826 mayalso reside, completely or at least partially, within the main memory804 and/or within the processor 802 during execution thereof by thecomputer system 800, the main memory 804 and the processor 802 alsoconstituting computer-readable storage media. The instructions 826 mayfurther be transmitted or received over a network 874 via the networkinterface device 822.

In one embodiment, the instructions 826 include instructions for a mediaproviding subsystem, a sponsored-content incorporation subsystem, asponsored-content configuration subsystem, a media viewer or otherfeatures which may correspond, respectively, to identically-namedcounterparts described with respect to FIG. 1, and/or a software librarycontaining methods for displaying content in between loops of a loopingmedia item. While the computer-readable storage medium 824 is shown inan exemplary embodiment to be a single medium, the term“computer-readable storage medium” should be taken to include a singlemedium or multiple media (e.g., a centralized or distributed database,and/or associated caches and servers) that store the one or more sets ofinstructions. The term “computer-readable storage medium” shall also betaken to include any non-transitory medium that is capable of storing,encoding or carrying a set of instructions for execution by the machineand that cause the machine to perform any one or more of themethodologies of the present disclosure. The term “computer-readablestorage medium” shall accordingly be taken to include, but not belimited to, solid-state memories, optical media, and magnetic media.

In the foregoing description, numerous details are set forth. It will beapparent, however, to one of ordinary skill in the art having thebenefit of this disclosure, that the present disclosure may be practicedwithout these specific details. In some instances, well-known structuresand devices are shown in block diagram form, rather than in detail, inorder to avoid obscuring the present disclosure.

Some portions of the detailed description have been presented in termsof algorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “providing”, “analyzing”, “determining”, “receiving”,“identifying”, “generating”, “playing” or the like, refer to the actionsand processes of a computer system, or similar electronic computingdevice, that manipulates and transforms data represented as physical(e.g., electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The disclosure also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may include a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but not limited to, any type of diskincluding floppy disks, optical disks, CD-ROMs, and magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, or any type of media suitable forstoring electronic instructions.

The words “example” or “exemplary” are used herein to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “example” or “exemplary” is not necessarily to be construed aspreferred or advantageous over other aspects or designs. Rather, use ofthe words “example” or “exemplary” is intended to present concepts in aconcrete fashion. As used in this application, the term “or” is intendedto mean an inclusive “or” rather than an exclusive “or”. That is, unlessspecified otherwise, or clear from context, “X includes A or B” isintended to mean any of the natural inclusive permutations. That is, ifX includes A; X includes B; or X includes both A and B, then “X includesA or B” is satisfied under any of the foregoing instances. In addition,the articles “a” and “an” as used in this application and the appendedclaims should generally be construed to mean “one or more” unlessspecified otherwise or clear from context to be directed to a singularform. Moreover, use of the term “an embodiment” or “one embodiment” or“an embodiment” or “one embodiment” throughout is not intended to meanthe same embodiment or embodiment unless described as such.

Reference throughout this specification to “one embodiment” or “anembodiment” means that a particular feature, structure, orcharacteristic described in connection with the embodiment is includedin at least one embodiment. Thus, the appearances of the phrase “in someembodiments” or “in an embodiment” in various places throughout thisspecification are not necessarily all referring to the same embodiment.In addition, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or.”

It is to be understood that the above description is intended to beillustrative, and not restrictive. Many other embodiments will beapparent to those of skill in the art upon reading and understanding theabove description. The scope of the disclosure should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

What is claimed is:
 1. A method comprising: receiving a request for aprimary media item; determining that the requested primary media item isa looping video that is intended to be played repeatedly without arepetition request from a user; identifying, by a processing device, asecondary media item for the primary media item; identifying a primarymedia item loop count indicating a number of times playback of theprimary media item is to be repeated, without the repetition requestfrom the user, before the secondary media item is to be presented; andproviding the primary media item, the secondary media item and theprimary media item loop count, the secondary media item to be presentedafter repeating the playback of the primary media item the indicatednumber of times without the repetition request from the user.
 2. Themethod of claim 1, wherein the secondary media item comprises a video.3. The method of claim 1, wherein providing the primary media item andthe secondary media item comprises providing a link to the primary mediaitem and a link to the secondary media item to a user device.
 4. Themethod of claim 3, further comprising providing instructions to the userdevice, the instructions comprising the primary media item loop countdirecting a media player to play the primary media item the indicatednumber of times before playing the secondary media item.
 5. The methodof claim 4, further comprising causing the secondary media item to beseparated into a first secondary media item portion and a secondsecondary media item portion; and wherein providing the primary mediaitem and the secondary media item comprises sending instructions to:play the first secondary media item portion after the primary media itemis played the indicated number of times; reset the primary media itemloop count; and play the second secondary media item portion after theprimary media item is again played the indicated number of times.
 6. Themethod of claim 1, wherein the secondary media item is selected for theprimary media item by a sponsor of the secondary media item.
 7. Themethod of claim 1, wherein receiving the request for the primary mediaitem comprises receiving the request through a content-sharing platformfrom a user device in communication with the content-sharing platform.8. The method of claim 1, wherein determining that the requested primarymedia item is a looping video comprises receiving the request from anapplication that plays looping media items.
 9. The method of claim 1,wherein the secondary media item comprises an image.
 10. The method ofclaim 1, wherein the secondary media item comprises text.
 11. Anon-transitory computer-readable storage medium storing instructionswhich, when executed, cause a processing device to perform operationscomprising: receiving a request for a primary media item; determiningthat the requested primary media item is a looping video that isintended to be played repeatedly without a repetition request from auser; identifying a secondary media item for the primary media item;identifying a primary media item loop count indicating a number of timesplayback of the primary media item is to be repeated, without therepetition request from the user, before the secondary media item is tobe presented; and providing the primary media item, the secondary mediaitem and the primary media item loop count, the secondary media item tobe presented after repeating the playback of the primary media item theindicated number of times without the repetition request from the user.12. The non-transitory computer-readable storage medium of claim 11,wherein the operations further comprise receiving the request for theprimary media item from a user device.
 13. The non-transitorymachine-readable storage medium of claim 11, wherein the secondary mediaitem for the primary media item is selected by a sponsor of thesecondary media item.
 14. The non-transitory machine-readable storagemedium of claim 11, wherein providing the primary media item and thesecondary media item comprises sending a manifest file to a user device,the manifest file comprising a link to the primary media item and a linkto the secondary media item and looping instructions.
 15. A systemcomprising: a memory to store instructions; and a processing devicecommunicably coupled to the memory, the processing device to execute theinstructions to: receive a secondary item; receive informationidentifying one or more primary media items that are looping videos eachintended to be played repeatedly without a repetition request from auser; associate the secondary media item with the informationidentifying the one or more primary media items; identify, for at leastone of the primary media items, a primary media item loop countindicating a number of times playback of the at least one of the primarymedia items is to be repeated, without the repetition request from theuser, before the secondary media item is to be presented; and providethe secondary media item for play with the at least one of the primarymedia items, the secondary media item to be played after repeating theplayback of the at least one of the primary media items the indicatednumber of times without the repetition request from the user.
 16. Thesystem of claim 15, wherein providing the secondary media item for playwith the at least one of the primary media items comprises streaming thesecondary media item to a client device.
 17. The system of claim 15,wherein the information identifying the one or more primary media itemscomprises one or more tags.
 18. The system of claim 15, whereinassociating the secondary media item with the information identifyingthe one or more primary media items comprises receiving a request toassociate the secondary media item with a primary media item tag. 19.The system of claim 15, wherein the processing device is further toexecute the instructions to provide a user interface to present a userof the system with the one or more primary media items and to receive aselection from the user, the selection indicating the at least one ofthe primary media items with which the secondary media item is to beplayed.
 20. A method comprising: receiving a request for a primary mediaitem that is a looping video intended to be played repeatedly without arepetition request from a user; receiving instructions to play theprimary media item repeatedly, without the repetition request from theuser, and to present a secondary media item in between repetitions ofthe primary media item, the instructions comprising a primary media itemloop count indicating a number of times playback of the primary mediaitem is to be repeated, without the repetition request from the user,before the secondary media item is to be presented; playing, by aprocessing device, the primary media item the indicated number of timeswithout the repetition request from the user; and when playing theprimary media item the indicated number of times is completed,presenting the secondary media item followed by another playing of theprimary media item.
 21. The method of claim 20, wherein playing theprimary media item comprises rendering a stream of data comprising theprimary media item.
 22. The method of claim 20, wherein receiving arequest for a primary media item comprises determining that a framelinked to the primary media item in an application is visible to theuser, the frame being configured to automatically display the primarymedia item.
 23. The method of claim 20, wherein playing the primarymedia item comprises rendering the primary media item in a display theindicated number of times in a loop.
 24. The method of claim 20, whereinpresenting the secondary media item comprises retrieving the secondarymedia item from a cache on a client device.